1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, apparatuses, and products for creating a behavioral model of a hardware device for use in a simulation environment.
2. Description of Related Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely complicated devices. Today's computers are much more sophisticated than early systems such as the EDVAC. Computer systems typically include a combination of hardware and software components, application programs, operating systems, processors, buses, memory, input/output devices, and so on. As advances in semiconductor processing and computer architecture push the performance of the computer higher and higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
A ‘system-on-a-chip’ (‘SOC’) is a technique of integrating all components of a computer system into a single chip. An SOC may contain digital, analog, mixed-signal, and radio-frequency functions—all on one chip. A typical computer system consists of a number of integrated circuits that perform different tasks. Examples of such integrated circuits include microprocessors, memory (RAM, ROM), UARTs, parallel ports, DMA controller chips, and so on. Recent improvements in semiconductor technology have allowed VLSI integrated circuits to grow in complexity, making it possible to integrate all components of a system in a single chip. This can be done in a number of technologies including, for example, full-custom development, standard cell architectures, and field programmable gate arrays (‘FPGAs’), and complex programmable logic arrays (‘CPLAs’). SOC designs typically consume less power, cost less, and are more reliable than multi-chip systems. And with fewer packages in a system, assembly costs are reduced as well.
A typical application for an SOC is an ‘embedded system.’ An embedded system is a special-purpose computer system, which is completely encapsulated by the device it controls. An embedded system has specific requirements and performs pre-defined tasks, unlike a general-purpose personal computer.
Examples of embedded systems include:                automatic teller machines (‘ATMs’);        cellular telephones and telephone switches;        computer network equipment, routers, timeservers and firewalls;        computer printers;        copiers;        floppy disk drives, hard disk drives, CD ROM drives, DVD ROM drives;        engine controllers and antilock brake controllers for automobiles;        home automation products, thermostats, air conditioners, sprinklers, security monitoring systems;        handheld calculators;        household appliances, microwave ovens, washing machines, television sets, DVD players/recorders;        inertial guidance systems, flight control hardware/software and other integrated systems in aircraft and missiles;        medical equipment;        measurement equipment such as digital storage oscilloscopes, logic analyzers, and spectrum analyzers;        multifunction wristwatches;        multifunctional printers (‘MFPs’);        personal digital assistants (‘PDAs’), small handheld computers with personal information managers (‘PIMs’) and other applications;        mobile phones with additional capabilities, for example, mobile digital assistants with cellphone, PDA (functions, and Java capabilities;        programmable logic controllers (‘PLCs’) for industrial automation and monitoring;        stationary videogame consoles and handheld game consoles; and        wearable computers.        
In designing SOC devices, it is common to perform extensive simulation to verify a design's correctness before producing first prototypes. This simulation includes the design under test (‘DUT’) and a surrounding environment (sometimes called a ‘simulation environment’ or ‘test bench’) which simulates as closely as possible the conditions in which the actual SOC will operate. If an SOC will have connections to external devices, such as memories, busses or communication channels, these devices are commonly represented in the simulation by models written in a hardware description language (‘HDL’) such as VHDL or Verilog. These models may be representative of a single vendor implementation of the device or may be a generic model of some defined bus. As such, they may not reliably represent the actual behavior of the devices to which the SOC will eventually be attached. In particular, variations of device behavior under changes in operating conditions such as voltage, frequency, and temperature are difficult to represent accurately in an HDL model. Normally, any such parametric behavior is discovered only during hardware testing, when changes to the design are much more difficult and expensive.
In addition, there are circumstances when an HDL model that simulates the operations of an external device is not available and is not practical to create by direct programming in an HDL. There may be several reasons for this, including unknown or unpredictable response of the device to changes in voltage or frequency. The internal workings of the external device may be unknown to the SOC designers, perhaps due to encoding for security reasons or to proprietary intellectual property within.